package com.wyp168.leetcode.listnode;

/**
 * @ClassName SwapPairs
 * @Description 给你一个链表，两两交换其中相邻的节点，并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题（即，只能进行节点交换）。
 * @Author wyp168
 * @Date 2022/8/10 08:32
 */
public class SwapPairs {
    public static void main(String[] args) {
        ListNode a = new ListNode(0);
        ListNode b = new ListNode(1);
        ListNode c = new ListNode(2);
        ListNode d = new ListNode(3);

        a.next = b;
        b.next = c;
        c.next = d;

        SwapPairs swapPairs = new SwapPairs();
        ListNode res = swapPairs.swapPairs(a);
        System.out.println(res);
    }
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }

        ListNode next = head.next;
        head.next = swapPairs(next.next);
        next.next = head;
        return next;
    }
}
